@Sophia
2年前 提问
1个回答

软件安全设计原则有哪些

Anna艳娜
2年前

软件安全设计原则有以下这些:

  • 最小特权原则:最小特权原则是指应限定软件系统中每个主体所必须拥有的最小特权,这样可以确保当它出现故障、错误、恶意篡改时给软件系统造成的损失最小。这里的主体可以是用户、管理员,也可以是进程、应用和其他软件系统。最小特权原则要求只给主体赋予其完成规定任务所必需的权限,并且该权限的持续时间也应该尽可能短。

  • 职责分离原则:职责分离原则是指分配不同的任务给不同的个体。职责分离带来清晰的模块划分,使得模块高内聚低耦合,同时也将风险分散到各个模块中去。避免因某个模块出现问题,就使得整个软件面临风险。而且由于职责分离,开发人员可以快速定位到出现问题的模块,以便进行修复。职责分离的模块也易于测试。

  • 默认安全原则:默认安全是指需要为系统提供默认账号、权限等配置。默认安全原则使得用户不需要额外配置,就可以安全地使用软件。

  • 心理可接受原则:心理可接受原则指的是对软件系统资源的访问不应该因为采取了安全措施而变得更加困难,超出用户的心理预期。因为一旦非常难用,超出用户可接受的心理预期,用户可能选择关闭这些安全机制。安全的程序必须易于使用,且输出的信息易于理解。比如,如果一个密码被拒绝了,密码服务程序不给出拒绝原因而是简单粗暴告诉你“出错”,那可能会使得用户放弃注册。

  • 隐私保护原则:隐私是指用户存放在软件系统中的个人信息。一个安全的软件系统,不仅在用户的使用协议中声明软件系统对于收集到的个人信息如何使用,也要采取有效措施确保用户的隐私不被泄露、窃取。

  • 保护最薄弱环节原则:影响软件安全的因素可能不是一个两个,而是一个链条,软件的安全性由其中最弱的环节决定。所以开发人员在进行安全性需求分析和设计时,应标识出软件系统最薄弱的部件,并采取措施消除最严重的风险。

  • 故障保护原则:一些不安全的行为可能引发系统故障,而系统出现故障,也可能引发更多的不安全行为。有些攻击者只需人为造成某种类型的故障,或者等待某类型的故障发生,就可以对软件系统实施攻击。

  • 纵深防御原则:纵深防御原则的基本思想是:建立多重防御策略来抵御安全风险,当一层防御不够时,另一层防御将会阻止软件被进一步的破坏。纵深防御原则强调不依赖于单一的安全解决方案,而是使用多种互补的安全产品,即使一个产品失效,也不会导致整个系统遭受攻击。例如,大部分公司都使用企业级防火墙作为第一层的防御措施,对重要数据进行加密作为第二层次的防御措施。